/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package sisgraf.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 *
 * @author POSITIVO R41
 */
@Entity
public class ServicoItemOrcamento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue
    private int id;
    private BigDecimal porcentagemAplicacao;
    private byte numeroAplicacoes;
    private BigDecimal valorUnitario;
    private BigDecimal quantidade;
    private String observacoes;

    @ManyToOne(optional = false)
        @JoinColumn(name = "idMaterial", referencedColumnName = "id", nullable = false)
        private Material material;
    @ManyToOne(optional = false)
        @JoinColumn(name="idItemOrcamento", referencedColumnName="id")
        private ItemOrcamento itemOrcamento;

    @ManyToOne(optional = false)
        @JoinColumn(name="idOrcamento", referencedColumnName="id")
        private Orcamento orcamento;


    public ServicoItemOrcamento() {
    }
 
    public ServicoItemOrcamento(int id) {
        this.id =  id;
    }

    public ServicoItemOrcamento(int id, BigDecimal porcentagemAplicacao, byte numeroAplicacoes) {
        this.id = id;
        this.porcentagemAplicacao = porcentagemAplicacao;
        this.numeroAplicacoes = numeroAplicacoes;
    }

    public int getId() {
        return id;
    }

    public String getIdToString() {
        return  String.valueOf(id);
    }

    public void setId(int id) {
        this.id = id;
    }

    public BigDecimal getPorcentagemAplicacao() {
        return porcentagemAplicacao;
    }

    public void setPorcentagemAplicacao(BigDecimal porcentagemAplicacao) {
        this.porcentagemAplicacao = porcentagemAplicacao;
    }

    public byte getNumeroAplicacoes() {
        return numeroAplicacoes;
    }

    public String getNumeroAplicacoesToString() {
        return String.valueOf(numeroAplicacoes);
    }

    public void setNumeroAplicacoes(byte numeroAplicacoes) {
        this.numeroAplicacoes = numeroAplicacoes;
    }

    public Material getMaterial() {
        return material;
    }

    public void setMaterial(Material material) {
        this.material = material;
    }
    public ItemOrcamento getItemOrcamento() {
        return itemOrcamento;
    }

    public void setItemOrcamento(ItemOrcamento itemOrcamento) {
        this.itemOrcamento = itemOrcamento;
    }
    public Orcamento getOrcamento() {
        return orcamento;
    }

    public void setOrcamento(Orcamento orcamento) {
        this.orcamento = orcamento;
    }

    /*
     *
    public float getQuantidadeMaterial(){
        return 0;
    }
    public String getQuantidadeMaterialToString(){
        return "0";
    }
     */

    public String getObservacoes() {
        return observacoes;
    }

    public void setObservacoes(String observacoes) {
        this.observacoes = observacoes;
    }

    public BigDecimal getQuantidade() {
        return quantidade;
    }

    public String getQuantidadeForm() {
        String valor = quantidade.toString();
        valor = valor.replace('.', ',');
        return valor;
    }

    public void setQuantidade(BigDecimal quantidade) {
        this.quantidade = quantidade;
    }

    public BigDecimal getValorUnitario() {
        return valorUnitario;
    }
    public String getValorUnitarioForm() {
        String valor = valorUnitario.toString();
        valor = valor.replace('.', ',');
        return valor;
    }

    public void setValorUnitario(BigDecimal valorUnitario) {
        this.valorUnitario = valorUnitario;
    }
    public BigDecimal getValorTotal() {
        BigDecimal valor = new BigDecimal(this.numeroAplicacoes);
        valor = valor.multiply(this.quantidade);
        valor = valor.multiply(this.porcentagemAplicacao);
        valor = valor.multiply(this.valorUnitario);
        valor = valor.setScale(2,RoundingMode.HALF_UP);
        return valor;
    }
    public String getValorTotalForm() {
        String valor = this.getValorTotal().toString();
        valor = valor.replace('.', ',');
        return valor;
    }
 
 }
